<?php
namespace app\admin\model;
use think\Db;
class GoodsCat{
    /**
     * 返回分类下的所有子分类,  无限极没有分页, 重新组装数据结构, 有分类的深度
     * @param number $id 分类id
     * @return
                 返回值       如没有数据,为空数组 array()
            Array
            (
                [0] => Array
                    (
                        [id] => 45        //分类id
                        [parent_id] => 0 //父级分类id
                        [cat_title] => '日用品' //分类标题
                        [cat_tree] => 0,   //分类树
                        [sort] => 1   //分类排序
                        [cat_staus] => 1  //分类状态
                        [depath] => 0   //分类深度
                    )

            )
     */
    public static function allSubCat($id = 0){
        static $temp = [];
        $rs = Db::name('goods_cat')->where('parent_id', $id)->order('sort','desc')->select();
        foreach($rs as $val){
            $val['depath'] = substr_count($val['cat_tree'], ",")-1;
            $temp[] = $val;
            self::allSubCat($val['id']);
        }
        return $temp;
    }

    /**
     * 创建自己的树结构
     * @param number $parent_id 父ID
     * @return string 树结构
     */
    public static function buildTree($parent_id = 0){
        $temp = ",0,";
        if( $parent_id!=0 ){
            $temp = Db::name('goods_cat')->where("id",$parent_id)->value("cat_tree").$parent_id.",";
        }
        return $temp;
    }

    /**
     * 验证是否可能删除分类
     * @param unknown $id  分类id
     * @return true(可以删除) or false;
     */
    public function checkDel($id){
       if( Db::name('goods_cat')->where('parent_id', $id)->find() )
           return com_error('分类下有子分类，不能删除!');

       if( Db::name('goods')->where('cat_id', $id)->find() )
           return com_error('分类下有产品，不能删除!');

       return true;
    }
}
